{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Chapter 6 – Decision Trees**\n",
    "\n",
    "**第六章 - 决策树**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "_This notebook contains all the sample code and solutions to the exercises in chapter 6._\n",
    "\n",
    "_这个notebook包含第六章所有的示例代码和练习答案_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Setup"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# To support both python 2 and python 3\n",
    "from __future__ import division, print_function, unicode_literals\n",
    "\n",
    "# Common imports\n",
    "import numpy as np\n",
    "import os\n",
    "\n",
    "# to make this notebook's output stable across runs\n",
    "np.random.seed(42)\n",
    "\n",
    "# To plot pretty figures\n",
    "%matplotlib inline\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['axes.labelsize'] = 14\n",
    "plt.rcParams['xtick.labelsize'] = 12\n",
    "plt.rcParams['ytick.labelsize'] = 12\n",
    "\n",
    "# Where to save the figures\n",
    "PROJECT_ROOT_DIR = \".\"\n",
    "CHAPTER_ID = \"decision_trees\"\n",
    "\n",
    "def image_path(fig_id):\n",
    "    return os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id)\n",
    "\n",
    "def save_fig(fig_id, tight_layout=True):\n",
    "    print(\"Saving figure\", fig_id)\n",
    "    if tight_layout:\n",
    "        plt.tight_layout()\n",
    "    plt.savefig(image_path(fig_id) + \".png\", format='png', dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Training and visualizing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=2,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "            min_samples_leaf=1, min_samples_split=2,\n",
       "            min_weight_fraction_leaf=0.0, presort=False, random_state=42,\n",
       "            splitter='best')"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.datasets import load_iris\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "\n",
    "iris = load_iris()\n",
    "X = iris.data[:, 2:] # petal length and width\n",
    "y = iris.target\n",
    "\n",
    "tree_clf = DecisionTreeClassifier(max_depth=2, random_state=42)\n",
    "tree_clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.tree import export_graphviz\n",
    "\n",
    "export_graphviz(\n",
    "        tree_clf,\n",
    "        out_file=image_path(\"iris_tree.dot\"),\n",
    "        feature_names=iris.feature_names[2:],\n",
    "        class_names=iris.target_names,\n",
    "        rounded=True,\n",
    "        filled=True\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure decision_tree_decision_boundaries_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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B2YAjxBZugFgNPCPDMUmIrJNUinPTuV8mTouG+fr168X/fr1Si0QkRyWbO/LrUAxkaqphRW2PwHcnu6gJD9de+0tXHddJN81M3bcsQm77daBY489giFDLqJVq5Zpv+acOd/w6KOTueyygTRtumP59gceeIyLLrqclSu/pnHjRmm9prtz4423cffdD/LDD/9j//17MmbM9eyzT4+0Xke2XbpLz9O9qnm244hl1qwP0ncykRySbIJzNHC0u6+wyv/1+QZol/aoJG/tuGMTnn/+EQBWrlzFhx9+yt13T+Ceex7i+ecfoVevnmm93pw5c7nuun8wYMBZlRKcTLrpptu5/vox3HzzVXTtuhu33vov+vQ5k08+eS0jSVy6pHPulFyS6L4gnPecTs8++37QIYhkRLIJTgMiVVNVtQDWpy8cyXd16xZw4IFburv79v0Zv/nNAI488hTOOWcwn332BgUF+Tsv5Pr167nppju48spL+N3vfgXAQQcV0anT/tx5532MHHllwBHGl+65WHJFKveV7/ecTnvtpcdTEk7Jrib+OnBBhc9uZgXAUODldAcl4dK06Y7ceONf+frrebz44n+BSKIwdOhI2rfvRYMG7dl336N5/vnKP0qdOu3Pn/50LddfP5o2bfamSZPOnHfeb1m5chUAr732NieddD4AnTv3pqCgNZ06VZ4ydt68hfTpcxY77NCJ7t0PZdKk57bpXt5++31WrVrNGWf0K9/WqFFDTjihD9OmvbJN5xYRkfRJNsH5MzDQzF4E6hEZWPwZkQU3hyU6UATgyCMPpm7durz7buR5/xlnDGTChMe48spLeeaZCRQV7cPJJw/go49mVTpu4sSnefnlN/jXv27hlltG8PzzLzNw4B8A2G+/vfj7368B4Mknx/PWW1N56qn7Kh1/3nm/5cQT+/DUU/ex226dOOecwSxatGXej82bN7Np06aEr9LS0vL2X375NQUFBey+e6dK19ljj9354ouv0/eFiWTJmDEjGDNmRNBhiKRdsquJf2ZmewODgRKgPpEBxne6+5IMxichUb9+fZo334ni4u95+eU3eP75l3jllac44oiDAejT50i++uobbrhhLI8/vmXuyHXr1jNlykPlA4UbNWrIgAGX8Pnnc9hjjy506dIZgH333YsOHXbd6rqXXTaIX/3qbAB69dqb1q33ZurUF/nNbwYA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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib.colors import ListedColormap\n",
    "\n",
    "def plot_decision_boundary(clf, X, y, axes=[0, 7.5, 0, 3], iris=True, legend=False, plot_training=True):\n",
    "    x1s = np.linspace(axes[0], axes[1], 100)\n",
    "    x2s = np.linspace(axes[2], axes[3], 100)\n",
    "    x1, x2 = np.meshgrid(x1s, x2s)\n",
    "    X_new = np.c_[x1.ravel(), x2.ravel()]\n",
    "    y_pred = clf.predict(X_new).reshape(x1.shape)\n",
    "    custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])\n",
    "    plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap)\n",
    "    if not iris:\n",
    "        custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])\n",
    "        plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)\n",
    "    if plot_training:\n",
    "        plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\", label=\"Iris-Setosa\")\n",
    "        plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\", label=\"Iris-Versicolor\")\n",
    "        plt.plot(X[:, 0][y==2], X[:, 1][y==2], \"g^\", label=\"Iris-Virginica\")\n",
    "        plt.axis(axes)\n",
    "    if iris:\n",
    "        plt.xlabel(\"Petal length\", fontsize=14)\n",
    "        plt.ylabel(\"Petal width\", fontsize=14)\n",
    "    else:\n",
    "        plt.xlabel(r\"$x_1$\", fontsize=18)\n",
    "        plt.ylabel(r\"$x_2$\", fontsize=18, rotation=0)\n",
    "    if legend:\n",
    "        plt.legend(loc=\"lower right\", fontsize=14)\n",
    "\n",
    "plt.figure(figsize=(8, 4))\n",
    "plot_decision_boundary(tree_clf, X, y)\n",
    "plt.plot([2.45, 2.45], [0, 3], \"k-\", linewidth=2)\n",
    "plt.plot([2.45, 7.5], [1.75, 1.75], \"k--\", linewidth=2)\n",
    "plt.plot([4.95, 4.95], [0, 1.75], \"k:\", linewidth=2)\n",
    "plt.plot([4.85, 4.85], [1.75, 3], \"k:\", linewidth=2)\n",
    "plt.text(1.40, 1.0, \"Depth=0\", fontsize=15)\n",
    "plt.text(3.2, 1.80, \"Depth=1\", fontsize=13)\n",
    "plt.text(4.05, 0.5, \"(Depth=2)\", fontsize=11)\n",
    "\n",
    "save_fig(\"decision_tree_decision_boundaries_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Predicting classes and class probabilities"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.        , 0.90740741, 0.09259259]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_clf.predict_proba([[5, 1.5]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_clf.predict([[5, 1.5]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Sensitivity to training set details"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[4.8, 1.8]])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[(X[:, 1]==X[:, 1][y==1].max()) & (y==1)] # widest Iris-Versicolor flower"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=2,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "            min_samples_leaf=1, min_samples_split=2,\n",
       "            min_weight_fraction_leaf=0.0, presort=False, random_state=40,\n",
       "            splitter='best')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "not_widest_versicolor = (X[:, 1]!=1.8) | (y==2)\n",
    "X_tweaked = X[not_widest_versicolor]\n",
    "y_tweaked = y[not_widest_versicolor]\n",
    "\n",
    "tree_clf_tweaked = DecisionTreeClassifier(max_depth=2, random_state=40)\n",
    "tree_clf_tweaked.fit(X_tweaked, y_tweaked)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure decision_tree_instability_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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H/84o9b5P/nJdzn++FO4/fYZdOvWi3HjRrBy5Uc1x3fs2MH27dtTbvG9Th9++B4lJSV069ar1n169jyADz98L3s/mIiIFI36emKmJth3Xy4CqWMD0Dbue/XnihDu3WS0aNGS9u07smZNOS+//CzPPTeTBx98gSOO+CoARx99IosXL+SWW37DrbdOqzlvy5bN3H33zJqBwq1bt+GnPz2HDz54l/32O4AePfYHoF+/Q+jatdsu9z333IsZPvxcAA466FAOO6yM5557krPO+h8Abrrp1zUDo5PZe+99mT17CQDr1n1G69allJTUHhrWrl17Nm/exNatW9l9990b/gOJiEjRSpnguPv3wwqkjgXAwcDDse8HA+XuXt/YHWkgj43sfPnlf9CpU2cGDhzE9u3ba44PGnQcjzwypdY5gwefUKsKaujQb+HuvPXWa+y33wH13nPIkBNrPrdv34EOHfaq1YMzcuQYjj32pJTX2H33FvXeR3LLLHk1VLbP69gx9YKaDVXf9bJ5LxHJj1yPpanFzJrH7lkClJhZS2C7u2+v0/QeYIqZ3U9QefULYEqYsTYFlZVb+PzztXTsWMaqVR+zevUqevXabZd2dXtGOnTYq9b3Vq1a06ZNKatXr0zrvvGl4wC77bY7lZU712zt1KnzLveoK35V+3bt2rNp0waqqqpqxbpu3We0atVavTc5kqoUPNvnZbs8W+XeItEXaoJDkKj8Ku772cDVZnY38A7Q192XufssM7seeJ5gJfO/1jlPsmDOnOfZvn07hxxyJHPmPEfnznvzxz8+Wu95a9d+Uuv75s2b2LhxA506dclKXA19RdWzZx+qqqpYsuQDevbcv6bNokXv0bNnn6zEJCIixSXUBMfdxwPjkxyuNfObu98I3JjjkJqs9es/59prL41N+nc8Zsadd/6ONm1K600KZs/+Oxs3bqh5TfXMMzMwM/r3HwgEPTJArV6ZhmjoK6pDDz2KPfZoy1NPTeOii34BBEnXs88+wYgRYzKKQUREilvYPTiSB9u3b6+plNqwoYK3357PfffdxpYtm5gyZRYlJSUMGXICRx89lHPOOYHzz7+U3r37UVGxnnfffZPKyi38/OcTa67XsmUrzj33m4wZcwmffLKSiRMvYejQb9GrV1+AmkHGDzzwR046aQStWrWmT5+D0o63rOyLlJWlP9VSixYt+Z//uYybb55Au3bt6dmzD3fddSM7duxg1KiL0r6OiIhEhxKcJqCiYh2nn34kZkZpaVu6dduP0047u9ZSDWbGbbdN59Zbf8uf//wHVqxYRrt2e9K374BdkoSTThpBaekeXHrpD9i0aQPHH38K11xzW83xrl335YorbmDKlJuYOvVmOnfuWvM6KVcuuOAyduzYwW23TeSzz9Zy0EEDuffev9OpU1lO7ysiIoXJvL551YtI//4D/fHH5+U7jEgbPLgbw4Z9myuvvCHfoYiISBPUvbvNd/eB9bWrb6I/ERERkaKjBEdEREQiR2NwpEFyPZZGREQzmqjSAAAPt0lEQVQkG9SDIyIiIpETqUHGZhadhxEREZFENMhYREREmqZIjcE59ND+zJ37TL7DEBERkRwpKUlvWSD14IiIiEjkKMERERGRyFGCIyIiIpGjBEdEREQiRwmOiIiIRI4SHBEREYkcJTgiIiISOUpwREREJHKU4IiIiEjkKMERERGRyInUUg1SHMrLp7NkyUQqKz+mRYu96dbtcsrKTs93WCIiEiFKcCRU5eXTef/9n7Fjx2YAKis/4v33fwagJEdERLJGr6gkVEuWTKxJbqrt2LGZJUsm5ikiERGJIiU4EqrKyo8btF9ERCQTSnAkVC1a7N2g/SIiIplQgiOh6tbtcpo1a1VrX7NmrejW7fI8RSQiIlGkQcYSquqBxKqiEhGRXAo1wTGzPYG7gBOBNcDl7v5AgnbjgSuByrjd/d19URhxSm6VlZ2uhEZERHIq7B6cycBWoAwYAMw0s7fcfUGCtg+5+9mhRid5pzlyREQkG0Ibg2NmbYAzgKvcfYO7zwYeB84JKwYpbNVz5FRWfgR4zRw55eXT8x2aiIgUmTAHGfcGtrv7wrh9bwH9krQ/2cw+NbMFZnZB7sOTfNMcOSIiki1hJjilwPo6+9YBeyRo+zBwANAJ+CHwSzMbmeiiZjbGzOaZ2bzVq9dmM14JmebIERGRbAkzwdkAtK2zry1QUbehu7/j7ivcvcrdXwEmAd9OdFF3v8PdB7r7wE6dOmQ9aAmP5sgREZFsCTPBWQg0N7NecfsOBhINMK7LActJVFIwNEeOiIhkS2gJjrtvBKYDvzazNmY2CDgVuLduWzM71czaW+BwYBzwWFixSn6UlZ1Or1430KJFV8Bo0aIrvXrdoCoqERFpsLDLxC8E7gY+AdYCF7j7AjMbAjzt7qWxdiNi7VoAHwHXufvUkGOVmExKt998czjr179U871t2yEMGPBwxtfLRYwiIhJd5u75jiFrBg482OfOfSbfYURKdel2fHVTs2atUvas1E1uqrVtO4QuXUYkvR7Q4HtlGqOIiBSnkpIu8919YH3ttBaVpJRJ6Xai5KZ6f6rrZVomrvJyERGpS2tRSUrZLt3O5Hr13Uvl5SIiUpd6cCSlbJdup7pepvdSebmIiNSlBEdSyqR0u23bIUn3p7pepmXiKi8XEZG69IpKUqoepNuQCqUBAx5OWUVV3/UaWg2VSYwiIhJtSnCkXuvWzaWyciXBApgrWbdubk3ykCyR6dJlBJWVi2sSji5dRtS0KSs7PevJRy6uKSIixUsJjqS0cOFlrFoVPwVRVc33TZsW7VIxtX79S8ydewxbty6rqWyqXhUcaFC5d7rniYiI1KUxOJLSqlX3Jd2frBx8y5b/qtxbRETySgmO1KOqgfuTU7m3iIiERQmO1KOkgfuTU7m3iIiERQmOpNS589lJ9ycrB2/Zcn+Ve4uISF4pwZGUeve+ls6dR7Gzx6aEzp1H0bv3tQwY8PAuSU7btkM4/PAXMloVXKuJi4hItmixTRERESka6S62qTLxCCovn97gSe+CcvD7CAYPl9C589n07n0tAHPnHsOWLf+taduy5f4cfvgLALz44peA7XFXas7RRy/npZf2x319zV6ztgwZElzjlVcOYfv2VTvPaN6Zo456I+PYG3OeiIhEk3pwIqbuXDIQjGNJ9apn17luAp07j+Lzz1+tldxUa9lyf7Zs+ZDayU1qZm0pKWldK7mp1rx5Z3r2vKrBsUNmzywiIsUp3R4cjcGJmEzmkkk1102i5AaI7U8/uQFwX58wuQHYvn1VxvPgaP4cERGpSwlOxGQ2l0z25rppjEznwdH8OSIiUpcSnIjJbC6Z7M110xiZzoOj+XNERKQuJTgRk8lcMqnmumnZcv+Ex4L9DRujbtaW5s07JzzWvHnnjOfB0fw5IiJSl6qoIqZ6UG1DKoqqq6UKoYqqobFn+swiIhJtqqJqQnJRSp3smqmSIhERkUylW0WlBKeJyEUpdbJrNmvWLmG1lJIcERFpLJWJSy25KKVOds1kpeDJSs5FRESyTQlOE5GLUmqVYYuISKFSgtNE5KKUWmXYIiJSqJTgNBG5KKVOds1kpeDJSs5FRESyTQlOE1FWdjq9et1AixZdAaNFi66NXqsp2TWPOuqNXZIZDTAWEZEwqYpKREREikZBVlGZ2Z5mNsPMNprZUjP7bpJ2ZmbXmdna2HadmVmYsYqIiEjxCnsm48nAVqAMGADMNLO33H1BnXZjgNOAgwEH/g4sBm4PMVYREREpUqH14JhZG+AM4Cp33+Dus4HHgXMSNB8F/M7dP3L3j4HfAaPDilVERESKW5g9OL2B7e6+MG7fW8BXE7TtFzsW365fooua2RiCHh+AypKSLm9nIdao6AisyXcQBUK/RW36PXbSb1Gbfo/a9HvsVCi/xb7pNAozwSkF1tfZtw7YI0nbdXXalZqZeZ1R0e5+B3AHgJnNS2fgUVOh32Mn/Ra16ffYSb9Fbfo9atPvsVOx/RZhDjLeALSts68tUJFG27bAhrrJjYiIiEgiYSY4C4HmZtYrbt/BQN0BxsT2HZxGOxEREZFdhJbguPtGYDrwazNrY2aDgFOBexM0vwf4qZntbWZfBP4XmJLGbe7IVrwRod9jJ/0Wten32Em/RW36PWrT77FTUf0WoU70Z2Z7AncDJwBrgcvc/QEzGwI87e6lsXYGXAecFzv1TuBSvaISERGRdERqJmMRERER0FpUIiIiEkFKcERERCRyIpHgpLvGVVNgZmPNbJ6ZVZrZlHzHk09m1sLM7or9PVFhZm+a2bB8x5VPZnafma00s/VmttDMzqv/rGgzs15mtsXM7st3LPlkZi/EfocNse2/+Y4p38xshJm9G/tvy4ex8aJNStzfD9VblZndnO+40hH2WlS5ku4aV03BCuAaYCjQKs+x5FtzYDnBbNnLgG8AD5vZQe6+JJ+B5dFE4AfuXmlmfYAXzOwNd5+f78DyaDLwWr6DKBBj3f3OfAdRCMzsBIJil+8Ac4Eu+Y0oP6qLfwDMrBRYBUzLX0TpK/oenAaucRV57j7d3R8lqFJr0tx9o7uPd/cl7r7D3Z8kWLT10HzHli/uvsDdK6u/xraeeQwpr8xsBPA58Gy+Y5GCczXwa3d/Nfbvj49jayM2ZWcAnwAv5TuQdBR9gkPyNa4Srl0lTZeZlRH8/dIUe/ZqmNmtZrYJeA9YCTyV55DywszaAr8GfprvWArIRDNbY2Yvm9kx+Q4mX8ysBBgIdDKzD8zsIzO7xcyaeq/4KOCeYpmyJQoJTkPWuJImysx2A+4Hprr7e/mOJ5/c/UKCfz6GEEy+WZn6jMiaANzl7h/lO5ACcSnQA9ibYEK3J8ysqfbulQG7Ad8m+OdkAHAI8It8BpVPZrYvwev+qfmOJV1RSHAassaVNEFm1oxgxuytwNg8h1MQ3L0q9jq3K3BBvuMJm5kNAI4Hfp/vWAqFu//L3SvcvdLdpwIvE4xba4o2x/56s7uvdPc1wI003d8DgmEfs919cb4DSVcUBhnXrHHl7u/H9mntKgFqZsW+i+D/yL7h7tvyHFKhaU7THINzDNANWBb8LUIpUGJmfd39y3mMq5A4YPkOIh/c/TMz+4jgN6jZna94CsT3gGvzHURDFH0PTgPXuIo8M2tuZi2BEoJ/Ybc0sygkspm6DTgAONndN9fXOMrMbK9Y2WupmZWY2VBgJE1zgO0dBIndgNh2OzCToPqwyTGzL5jZ0Op/X5jZWcDRwKx8x5ZHfwYuiv1z0x64GHgyzzHlhZkdRfDqsiiqp6pF5T98FxKscfUJQfXQBU20RByCd8S/ivt+NkE1wPi8RJNHsXfG5xOMMVkV+z91gPPd/f68BZY/TvA66naC/7lZCvzE3R/Pa1R54O6bgE3V381sA7DF3VfnL6q82o1geok+QBXBAPTT6hRvNDUTgI4Ebwm2AA8Dv8lrRPkzCpju7kU19ENrUYmIiEjkFP0rKhEREZG6lOCIiIhI5CjBERERkchRgiMiIiKRowRHREREIkcJjoiIiESOEhwRKThmNjo2N02qNkvM7GdhxZSKmXUzMzezgfmORUQCSnBEJCEzmxL7j7ab2TYzW2RmN5hZmwZeI1Kzv0bxmUSiKCozGYtIbvyDYJG93QhWVb4TaEMTXKBTRIqLenBEJJVKd1/l7svd/QHgfuC06oNm1tfMZppZhZl9YmYPmlnn2LHxBFO8fzOuJ+iY2LFrzey/ZrY59qrp+tgaahkzs3Zmdkcsjgoz+2f8K6Pq115mdpyZvW1mG83seTPrXuc6l5tZeaztPWb2KzNbUt8zxexrZn83s01m9o6ZndCYZxKRzCnBEZGG2EzQm4OZdQFeBN4GDgeOJ1iV+zEzawbcQLB+zz+ALrHtldh1NgLnEiyEeiEwArgy06Biq8bPJFgQ8CTgkFhsz8XirNYCuDx27yOBLxCszVV9nREEa7ldCXwZeBf4adz5qZ4JgrWKbgIOBl4D/mJmpZk+l4hkTq+oRCQtZnY48F12rj5+AfCWu18a1+Z7wKfAQHefa2abifUCxV/L3SfEfV1iZr8FfgZclWF4XyNYFbxT3KrxV5nZyQSv2K6P7WsO/Mjd/xuL9wbgbjMzDxbm+zEwxd3vjLWfaGZfA3rH4t6Q6JniFnL9vbs/Edt3BfC9WFyzM3wuEcmQEhwRSeXrsWqm5gQ9N48BF8WOHQocnaTaqScwN9lFzezbwE+A/Qh6fUpiW6YOBVoDq+OSDYCWsViqVVYnNzErgN2B9gSJWR/gT3Wu/S9iCU4a/l3n2gB7pXmuiGSREhwRSeVFYAywDVjh7tvijjUjeC2UqFS7PNkFzewI4C/A1cDFwOfAKQSvfzLVLHbPIQmOrY/7vL3OMY87Pxtqfh9391iypaEAInmgBEdEUtnk7h8kOfY6MBxYWifxibeVXXtmBgEfx7+mMrN9Gxnn60AZsMPdFzXiOu8BhwF3x+07vE6bRM8kIgVG/2chIpmaDLQDHjKzr5hZDzM7PlbJtEeszRLgQDPb38w6mtluwEJgbzM7K3bOBcDIRsbyD+BlggHOw8ysu5kdaWZXm1miXp1kJgGjzexcM+tlZj8HvsLOnp5kzyQiBUYJjohkxN1XEPTG7ABmAQsIkp7K2AbBeJZ3gXnAamBQbBDu/wF/IBizcgLwy0bG4sA3gOdi9/wvQbXT/uwcC5POdf4CTACuBd4ADiSostoS12yXZ2pM7CKSGxb8e0FERBIxsxlAc3c/Od+xiEj6NAZHRCTGzFoTlL/PIhiQfAZwauyvIlJE1IMjIhJjZq2AJwgmCmwFvA9cF5vFWUSKiBIcERERiRwNMhYREZHIUYIjIiIikaMER0RERCJHCY6IiIhEjhIcERERiZz/BzyQ0vGzCBZ9AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 4))\n",
    "plot_decision_boundary(tree_clf_tweaked, X_tweaked, y_tweaked, legend=False)\n",
    "plt.plot([0, 7.5], [0.8, 0.8], \"k-\", linewidth=2)\n",
    "plt.plot([0, 7.5], [1.75, 1.75], \"k--\", linewidth=2)\n",
    "plt.text(1.0, 0.9, \"Depth=0\", fontsize=15)\n",
    "plt.text(1.0, 1.80, \"Depth=1\", fontsize=13)\n",
    "\n",
    "save_fig(\"decision_tree_instability_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure min_samples_leaf_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_moons\n",
    "Xm, ym = make_moons(n_samples=100, noise=0.25, random_state=53)\n",
    "\n",
    "deep_tree_clf1 = DecisionTreeClassifier(random_state=42)\n",
    "deep_tree_clf2 = DecisionTreeClassifier(min_samples_leaf=4, random_state=42)\n",
    "deep_tree_clf1.fit(Xm, ym)\n",
    "deep_tree_clf2.fit(Xm, ym)\n",
    "\n",
    "plt.figure(figsize=(11, 4))\n",
    "plt.subplot(121)\n",
    "plot_decision_boundary(deep_tree_clf1, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)\n",
    "plt.title(\"No restrictions\", fontsize=16)\n",
    "plt.subplot(122)\n",
    "plot_decision_boundary(deep_tree_clf2, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)\n",
    "plt.title(\"min_samples_leaf = {}\".format(deep_tree_clf2.min_samples_leaf), fontsize=14)\n",
    "\n",
    "save_fig(\"min_samples_leaf_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "angle = np.pi / 180 * 20\n",
    "rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]])\n",
    "Xr = X.dot(rotation_matrix)\n",
    "\n",
    "tree_clf_r = DecisionTreeClassifier(random_state=42)\n",
    "tree_clf_r.fit(Xr, y)\n",
    "\n",
    "plt.figure(figsize=(8, 3))\n",
    "plot_decision_boundary(tree_clf_r, Xr, y, axes=[0.5, 7.5, -1.0, 1], iris=False)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure sensitivity_to_rotation_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(6)\n",
    "Xs = np.random.rand(100, 2) - 0.5\n",
    "ys = (Xs[:, 0] > 0).astype(np.float32) * 2\n",
    "\n",
    "angle = np.pi / 4\n",
    "rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]])\n",
    "Xsr = Xs.dot(rotation_matrix)\n",
    "\n",
    "tree_clf_s = DecisionTreeClassifier(random_state=42)\n",
    "tree_clf_s.fit(Xs, ys)\n",
    "tree_clf_sr = DecisionTreeClassifier(random_state=42)\n",
    "tree_clf_sr.fit(Xsr, ys)\n",
    "\n",
    "plt.figure(figsize=(11, 4))\n",
    "plt.subplot(121)\n",
    "plot_decision_boundary(tree_clf_s, Xs, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)\n",
    "plt.subplot(122)\n",
    "plot_decision_boundary(tree_clf_sr, Xsr, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)\n",
    "\n",
    "save_fig(\"sensitivity_to_rotation_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Regression trees"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Quadratic training set + noise\n",
    "np.random.seed(42)\n",
    "m = 200\n",
    "X = np.random.rand(m, 1)\n",
    "y = 4 * (X - 0.5) ** 2\n",
    "y = y + np.random.randn(m, 1) / 10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeRegressor(criterion='mse', max_depth=2, max_features=None,\n",
       "           max_leaf_nodes=None, min_impurity_decrease=0.0,\n",
       "           min_impurity_split=None, min_samples_leaf=1,\n",
       "           min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
       "           presort=False, random_state=42, splitter='best')"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeRegressor\n",
    "\n",
    "tree_reg = DecisionTreeRegressor(max_depth=2, random_state=42)\n",
    "tree_reg.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure tree_regression_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeRegressor\n",
    "\n",
    "tree_reg1 = DecisionTreeRegressor(random_state=42, max_depth=2)\n",
    "tree_reg2 = DecisionTreeRegressor(random_state=42, max_depth=3)\n",
    "tree_reg1.fit(X, y)\n",
    "tree_reg2.fit(X, y)\n",
    "\n",
    "def plot_regression_predictions(tree_reg, X, y, axes=[0, 1, -0.2, 1], ylabel=\"$y$\"):\n",
    "    x1 = np.linspace(axes[0], axes[1], 500).reshape(-1, 1)\n",
    "    y_pred = tree_reg.predict(x1)\n",
    "    plt.axis(axes)\n",
    "    plt.xlabel(\"$x_1$\", fontsize=18)\n",
    "    if ylabel:\n",
    "        plt.ylabel(ylabel, fontsize=18, rotation=0)\n",
    "    plt.plot(X, y, \"b.\")\n",
    "    plt.plot(x1, y_pred, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "\n",
    "plt.figure(figsize=(11, 4))\n",
    "plt.subplot(121)\n",
    "plot_regression_predictions(tree_reg1, X, y)\n",
    "for split, style in ((0.1973, \"k-\"), (0.0917, \"k--\"), (0.7718, \"k--\")):\n",
    "    plt.plot([split, split], [-0.2, 1], style, linewidth=2)\n",
    "plt.text(0.21, 0.65, \"Depth=0\", fontsize=15)\n",
    "plt.text(0.01, 0.2, \"Depth=1\", fontsize=13)\n",
    "plt.text(0.65, 0.8, \"Depth=1\", fontsize=13)\n",
    "plt.legend(loc=\"upper center\", fontsize=18)\n",
    "plt.title(\"max_depth=2\", fontsize=14)\n",
    "\n",
    "plt.subplot(122)\n",
    "plot_regression_predictions(tree_reg2, X, y, ylabel=None)\n",
    "for split, style in ((0.1973, \"k-\"), (0.0917, \"k--\"), (0.7718, \"k--\")):\n",
    "    plt.plot([split, split], [-0.2, 1], style, linewidth=2)\n",
    "for split in (0.0458, 0.1298, 0.2873, 0.9040):\n",
    "    plt.plot([split, split], [-0.2, 1], \"k:\", linewidth=1)\n",
    "plt.text(0.3, 0.5, \"Depth=2\", fontsize=13)\n",
    "plt.title(\"max_depth=3\", fontsize=14)\n",
    "\n",
    "save_fig(\"tree_regression_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "export_graphviz(\n",
    "        tree_reg1,\n",
    "        out_file=image_path(\"regression_tree.dot\"),\n",
    "        feature_names=[\"x1\"],\n",
    "        rounded=True,\n",
    "        filled=True\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure tree_regression_regularization_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tree_reg1 = DecisionTreeRegressor(random_state=42)\n",
    "tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10)\n",
    "tree_reg1.fit(X, y)\n",
    "tree_reg2.fit(X, y)\n",
    "\n",
    "x1 = np.linspace(0, 1, 500).reshape(-1, 1)\n",
    "y_pred1 = tree_reg1.predict(x1)\n",
    "y_pred2 = tree_reg2.predict(x1)\n",
    "\n",
    "plt.figure(figsize=(11, 4))\n",
    "\n",
    "plt.subplot(121)\n",
    "plt.plot(X, y, \"b.\")\n",
    "plt.plot(x1, y_pred1, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "plt.axis([0, 1, -0.2, 1.1])\n",
    "plt.xlabel(\"$x_1$\", fontsize=18)\n",
    "plt.ylabel(\"$y$\", fontsize=18, rotation=0)\n",
    "plt.legend(loc=\"upper center\", fontsize=18)\n",
    "plt.title(\"No restrictions\", fontsize=14)\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(X, y, \"b.\")\n",
    "plt.plot(x1, y_pred2, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "plt.axis([0, 1, -0.2, 1.1])\n",
    "plt.xlabel(\"$x_1$\", fontsize=18)\n",
    "plt.title(\"min_samples_leaf={}\".format(tree_reg2.min_samples_leaf), fontsize=14)\n",
    "\n",
    "save_fig(\"tree_regression_regularization_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Exercise solutions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. to 6."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "See appendix A."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## 7."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "_Exercise: train and fine-tune a Decision Tree for the moons dataset._"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "a. Generate a moons dataset using `make_moons(n_samples=10000, noise=0.4)`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Adding `random_state=42` to make this notebook's output constant:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_moons\n",
    "\n",
    "X, y = make_moons(n_samples=10000, noise=0.4, random_state=42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "b. Split it into a training set and a test set using `train_test_split()`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "c. Use grid search with cross-validation (with the help of the `GridSearchCV` class) to find good hyperparameter values for a `DecisionTreeClassifier`. Hint: try various values for `max_leaf_nodes`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 294 candidates, totalling 882 fits\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  76 tasks      | elapsed:    0.4s\n",
      "[Parallel(n_jobs=-1)]: Done 882 out of 882 | elapsed:    1.1s finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=None, error_score='raise',\n",
       "       estimator=DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "            min_samples_leaf=1, min_samples_split=2,\n",
       "            min_weight_fraction_leaf=0.0, presort=False, random_state=42,\n",
       "            splitter='best'),\n",
       "       fit_params=None, iid=True, n_jobs=-1,\n",
       "       param_grid={'max_leaf_nodes': [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], 'min_samples_split': [2, 3, 4]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring=None, verbose=1)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "params = {'max_leaf_nodes': list(range(2, 100)), 'min_samples_split': [2, 3, 4]}\n",
    "grid_search_cv = GridSearchCV(DecisionTreeClassifier(random_state=42), params, n_jobs=-1, verbose=1)\n",
    "\n",
    "grid_search_cv.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,\n",
       "            max_features=None, max_leaf_nodes=17,\n",
       "            min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "            min_samples_leaf=1, min_samples_split=2,\n",
       "            min_weight_fraction_leaf=0.0, presort=False, random_state=42,\n",
       "            splitter='best')"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_search_cv.best_estimator_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "d. Train it on the full training set using these hyperparameters, and measure your model's performance on the test set. You should get roughly 85% to 87% accuracy."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "By default, `GridSearchCV` trains the best model found on the whole training set (you can change this by setting `refit=False`), so we don't need to do it again. We can simply evaluate the model's accuracy:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8695"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "y_pred = grid_search_cv.predict(X_test)\n",
    "accuracy_score(y_test, y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 8."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "_Exercise: Grow a forest._"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "a. Continuing the previous exercise, generate 1,000 subsets of the training set, each containing 100 instances selected randomly. Hint: you can use Scikit-Learn's `ShuffleSplit` class for this."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import ShuffleSplit\n",
    "\n",
    "n_trees = 1000\n",
    "n_instances = 100\n",
    "\n",
    "mini_sets = []\n",
    "\n",
    "rs = ShuffleSplit(n_splits=n_trees, test_size=len(X_train) - n_instances, random_state=42)\n",
    "for mini_train_index, mini_test_index in rs.split(X_train):\n",
    "    X_mini_train = X_train[mini_train_index]\n",
    "    y_mini_train = y_train[mini_train_index]\n",
    "    mini_sets.append((X_mini_train, y_mini_train))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "b. Train one Decision Tree on each subset, using the best hyperparameter values found above. Evaluate these 1,000 Decision Trees on the test set. Since they were trained on smaller sets, these Decision Trees will likely perform worse than the first Decision Tree, achieving only about 80% accuracy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8054494999999999"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.base import clone\n",
    "\n",
    "forest = [clone(grid_search_cv.best_estimator_) for _ in range(n_trees)]\n",
    "\n",
    "accuracy_scores = []\n",
    "\n",
    "for tree, (X_mini_train, y_mini_train) in zip(forest, mini_sets):\n",
    "    tree.fit(X_mini_train, y_mini_train)\n",
    "    \n",
    "    y_pred = tree.predict(X_test)\n",
    "    accuracy_scores.append(accuracy_score(y_test, y_pred))\n",
    "\n",
    "np.mean(accuracy_scores)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "c. Now comes the magic. For each test set instance, generate the predictions of the 1,000 Decision Trees, and keep only the most frequent prediction (you can use SciPy's `mode()` function for this). This gives you _majority-vote predictions_ over the test set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "Y_pred = np.empty([n_trees, len(X_test)], dtype=np.uint8)\n",
    "\n",
    "for tree_index, tree in enumerate(forest):\n",
    "    Y_pred[tree_index] = tree.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.stats import mode\n",
    "\n",
    "y_pred_majority_votes, n_votes = mode(Y_pred, axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "d. Evaluate these predictions on the test set: you should obtain a slightly higher accuracy than your first model (about 0.5 to 1.5% higher). Congratulations, you have trained a Random Forest classifier!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.872"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accuracy_score(y_test, y_pred_majority_votes.reshape([-1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  },
  "nav_menu": {
   "height": "309px",
   "width": "468px"
  },
  "toc": {
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 6,
   "toc_cell": false,
   "toc_section_display": "block",
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
